home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_11_06
/
1106129a
< prev
next >
Wrap
Text File
|
1993-02-26
|
971b
|
44 lines
/* filecopy.c: Low-level file copy */
#include <io.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define BUFSIZ 512
#define INPUT_MODE (O_RDONLY | O_BINARY)
#define OUTPUT_MODE (O_WRONLY | O_BINARY | O_CREAT)
int filecopy(char *from, char *to)
{
int nbytes;
int status = -1;
int fd1 = open(from,INPUT_MODE);
int fd2 = open(to,OUTPUT_MODE,S_IWRITE);
static char buffer[BUFSIZ];
if (fd1 >= 0 && fd2 >= 0)
{
status = 0;
while ((nbytes = read(fd1,buffer,BUFSIZ)) > 0)
if (write(fd2,buffer,nbytes) != nbytes)
{
/* Write error */
status = -1;
break; /* Write error */
}
/* Was there a read error? */
if (nbytes == -1)
status = -1;
}
if (fd1 >= 0)
close(fd1);
if (fd2 >= 0)
close(fd2);
return status;
}